package com.chinatechstar.file.mapper;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.chinatechstar.file.entity.File;

/**
 * 文件信息的数据持久接口层
 *
 * @版权所有 上海至界信息科技有限公司
 */
public interface FileMapper {

    /**
     * 查询文件分页
     *
     * @param paramMap 参数Map
     * @return
     */
    List<LinkedHashMap<String, Object>> queryFile(Map<String, Object> paramMap);

    /**
     * 按照id查找对应的文件
     *
     * @param id
     * @return
     */
    List<LinkedHashMap<String, Object>> queryFileById(String id);

    /**
     * 查询wps文件
     *
     * @param paramMap
     * @return
     */
    List<LinkedHashMap<String, Object>> queryWpsFile(Map<String, Object> paramMap);

    /**
     * 按照文件编号获取zjcode_file_sysuser中的数据
     *
     * @param fileId
     * @return
     */
    List<LinkedHashMap<String, Object>> queryFileSysUserByFileId(String fileId);

    /**
     * 按照fileId删除zjcode_file_sysuser中的数据
     *
     * @param fileId
     * @return
     */
    int deleteFileSysUserByFileId(String fileId);

    /**
     * 新增文件记录
     *
     * @param file 文件对象
     * @return
     */
    int insertFile(File file);

    /**
     * 新增文件与系统用户关联记录
     *
     * @param id        文件与系统用户关联ID
     * @param fileId    文件ID
     * @param sysUserId 系统用户ID
     * @return
     */
    int insertFileSysUser(Long id, Long fileId, Long sysUserId);

    /**
     * 删除文件
     *
     * @param id 文件ID
     * @return
     */
    int deleteFile(Long[] id);

    /**
     * 查询下载URL列表
     *
     * @param id 文件ID
     * @return
     */
    List<String> queryUrlList(Long[] id);

    /**
     * 第二种删除文件的方法
     *
     * @param file
     * @return
     */
    int deleteFileT2(File file);

    int updateFileBy(Map<String, Object> map);

}
